// hdu3434
// 题意：
// 给定n(<=10^6)个数，每个数属于[1, 10^9]，现在你可以每次选择一段连续的
// 区间整体+1或者-1, 问最少多少次操作后，所有数相等，并且求所有最终可能数的
// 个数。
//
// 题解：
// 很不错的数学题。假设数列是a[1..n]，首先第二问的答案就是|a[n]-a[1]| + 1。
// 为什么呢，我们需要第一问的分析。
// 我们将整个数列相邻做差分，那么最后就是要差分得到的数列全为零，
// 注意到一次区间操作相当于在差分数列对应区间端点两个数一个+1, 一个-1
// （顺序可以调换）。那么我们就得到算法，对于差分数列，总是正负成对的消除
// （靠向零），并且这个过程中，不会影响原数列的首尾两数。当消除完成对出现的数后，
// 还剩下要么都是正，要么都是负，这个也可以通过和首或尾相关的区间，
// 来不断减小或者增加某数。这样得到的操作步数就是最小的。
//
// 我们回头来看第二问，如果某次消除到差分数列中只有正或者负的时候，
// 对应原数列就是一个单调不增或者不减的数列了，夹在首尾之间的数都最终都可以被取到。
// 因为是区间操作。
//
// 这样两问都可以在输入后，稍作计算直接输出了。
//
// run: $exec < input
#include <iostream>

int n;
long long first, last, prev;

template <class T>
T abs(T x) { return x < 0 ? -x : x; }

int main()
{
	std::ios::sync_with_stdio(false);
	int T; std::cin >> T;
	for (int ti = 1, now; ti <= T; ti++) {
		std::cout << "Case " << ti << ": ";
		std::cin >> n;
		std::cin >> now;
		last = prev = first = now;
		long long pos = 0, neg = 0;
		for (int i = 1; i < n; i++) {
			std::cin >> now;
			if (now - prev > 0) pos += now - prev;
			else neg += prev - now;
			last = prev = now;
		}
		std::cout << std::max(pos, neg) << " " << abs(last - first) + 1 << "\n";
	}
}

